<?php

class App_Util_EstructuraTabBoton {
	
	private $tabs;
	private $botonVertical;
	private $botonHorizontal;
	private $label;
	private $labelsintesis;
	private $nombretabs;
	private $nombrebotonh;
	private $nombrebotonv;
	private $parametros;
	
	function __construct($estructura,$url,$parametros=array()) {
		$this->tabs = new App_Util_Tabs ( );
		$this->botonVertical = array();
		$this->botonHorizontal = array();
		$this->label = array();
		$this->labelsintesis = array();
		$this->parametros = $parametros;
		$this->estructuraTabBoton($estructura,$url);
	}
	
	function getTabs() {
		return $this->tabs;
	}

    function getBotonVertical($codigo) {
		return $this->botonVertical[$codigo];
	}
	
    function getBotonHorizontal($codigo) {
		return $this->botonHorizontal[$codigo];
	}
    
	function estructuraTabBoton($estructura,$url){
		//$baseUrl = Zend_Controller_Front::getInstance ()->getBaseUrl();
		$arr_keys = array_keys ( $estructura);
        $padreActual="-1";
        $padrecodigo="";
        $subpadrecodigo="";
        $ultimoSubPadre ="-1";
		for($i = 0; $i < count ( $estructura ); $i ++) {
		    $codvalordominio=$estructura [$arr_keys [$i]] ["codvalordominio"];
			$codpadre = $estructura [$arr_keys [$i]] ["codpadre"];
			$codigo = $estructura [$arr_keys [$i]] ["codigo"];
			$nombre = $estructura[$arr_keys [$i]] ["nombre"];
			$activo =$estructura [$arr_keys [$i]] ["activo"];
			$label = $estructura [$arr_keys [$i]] ["label"];
			$labelsintesis = $estructura [$arr_keys [$i]] ["labelsintesis"];
			$completo = false;
			if(isset($estructura [$arr_keys [$i]] ["completo"])) {
			    $completo = $estructura [$arr_keys [$i]] ["completo"];
			}
			
			if( empty($codpadre) ){
				$array_params = array("codtab"=>$codigo);
			    if (isset($this->parametros["codinstitucion"])){
			        $array_params["codinstitucion"]=$this->parametros["codinstitucion"];
			    }
			    $params=App_Util_SafeUrl::encriptar($array_params,true);
			    if(!empty($nombre)){
				    $this->tabs->agregar_vista ( $nombre,$url,$params );
				    if ($completo) {
				    	$this->tabs->checkear($nombre);
				    }
			    }
				$padreActual=$codvalordominio;
				$padrecodigo=$codigo;
				$this->botonHorizontal[$padrecodigo] = new App_Util_Botones() ;
				$this->nombretabs[$codigo]=$nombre;
			    $this->label[$padrecodigo.".1"]=$label;
	            $this->labelsintesis[$padrecodigo.".1"]=$labelsintesis;
	            $this->nombrebotonh[$padrecodigo.".1"]=$nombre;
			}
			elseif($codpadre == $padreActual){
			    $array_params = array("codtab"=>$padrecodigo,"codboton"=>$codigo);
			    if (isset($this->parametros["codinstitucion"])){
			        $array_params["codinstitucion"]=$this->parametros["codinstitucion"];
			    }
			    $params=App_Util_SafeUrl::encriptar($array_params,true);
			    if(!empty($nombre)){
	                $this->botonHorizontal[$padrecodigo]->agregar($nombre,$url,$params);
	                if ($completo) {
	                    $this->botonHorizontal[$padrecodigo]->checkear($nombre);
	                }
			    }
	            $ultimoSubPadre=$codvalordominio;
	            $subpadrecodigo=$codigo;
	            $this->botonVertical[$subpadrecodigo] = new App_Util_Botones() ;
	            $this->label[$padrecodigo.".".$codigo]=$label;
	            $this->labelsintesis[$padrecodigo.".".$codigo]=$labelsintesis;
	            $this->nombrebotonh[$padrecodigo.".".$codigo]=$nombre;
			}
			else{
				 $array_params = array("codtab"=>$padrecodigo,"codboton"=>$subpadrecodigo,"codboton2"=>$codigo);
			    if (isset($this->parametros["codinstitucion"])){
			        $array_params["codinstitucion"]=$this->parametros["codinstitucion"];
			    }
			    
			    $params=App_Util_SafeUrl::encriptar($array_params,true);
			    if(!empty($nombre)){
	                $this->botonVertical[$subpadrecodigo]->agregar($nombre,$url,$params);
			        if ($completo) {
	                    $this->botonVertical[$subpadrecodigo]->checkear($nombre);
	                }
			    }
	            $this->label[$padrecodigo.".".$subpadrecodigo.".".$codigo]=$label;
	            $this->labelsintesis[$padrecodigo.".".$subpadrecodigo.".".$codigo]=$labelsintesis;
	            $this->nombrebotonv[$padrecodigo.".".$subpadrecodigo.".".$codigo]=$nombre;
			}
		}
		if(count($this->parametros)>0){
	    	$sesionTabBoton = new Zend_Session_Namespace("TABBOTON");
	    	$sesionTabBoton->opcion=$this->parametros["codtab"]."_".$this->parametros["codboton"]."_".$this->parametros["codboton2"];
	    	$sesionTabBoton->NombreTab = $this->nombretabs[$this->parametros["codtab"]];
	    	$sesionTabBoton->NombreBotonH=$this->nombrebotonh[$this->parametros["codtab"].".".$this->parametros["codboton"]];
	    	$sesionTabBoton->NombreBotonV="";
	    	$codigo="";
	    	$titulo="xx";
	    	if(isset($this->label[$this->parametros["codtab"].".".$this->parametros["codboton"].".".$this->parametros["codboton2"]])) {
	    	    $sesionTabBoton->NombreBotonV=$this->nombrebotonv[$this->parametros["codtab"].".".$this->parametros["codboton"].".".$this->parametros["codboton2"]];
	    	    $codigo=$this->parametros["codtab"].".".$this->parametros["codboton"].".".$this->parametros["codboton2"];
	    	    $titulo=$sesionTabBoton->NombreBotonV;
	    	    $this->botonHorizontal[$this->parametros["codtab"]]->actual($sesionTabBoton->NombreBotonH);
	    	    $this->botonVertical[$this->parametros["codboton"]]->actual($sesionTabBoton->NombreBotonV);
	    	}
	    	else {
	    	    $codigo=$this->parametros["codtab"].".".$this->parametros["codboton"];
	    	    $titulo=$sesionTabBoton->NombreBotonH;
	    	    $this->botonHorizontal[$this->parametros["codtab"]]->actual($sesionTabBoton->NombreBotonH);
	    	}
	    	$sesionTabBoton->label=$this->label[$codigo];
	    	$sesionTabBoton->labelsintesis=$this->labelsintesis[$codigo];
	    	$sesionTabBoton->titulo=$titulo;
	    	$this->tabs->actual($sesionTabBoton->NombreTab);
		}
    }
}
?>